#ifndef SYMBOL_H_
#define SYMBOL_H_
/* symbol.h - define core data type.
 *
 * SYMBOL is an opaque pointer representing an instance of a symbol
 * (terminal, non-terminal, or action). There may be one or more
 * instances for a given symbol; an instance basically refers to a
 * specific textual occurrence in the source grammar. 
 */

#ifndef INPUT_H_
#   include "input.h"
#endif

class   SYMBOL
    {
public:
   ~SYMBOL();
private:
    SYMBOL(int Terminal);
    static SYMBOL NewNonTerm(TToken Token);
    static SYMBOL NewTerm(TToken Token);
    };


typedef struct      SYMBOLS_
    {
    void*           Dummy_;
    }               SYMBOLS_, *SYMBOLS;


#endif /* SYMBOL_H_ */
